home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Kit PC World De Ampliacion De Windows 95
/
Kit PC World de ampliacion de Windows 95.iso
/
internet
/
sweeper
/
samples
/
olecon~1
/
controls
/
webbit~1
/
webbit~3.cpp
< prev
Wrap
C/C++ Source or Header
|
1995-12-05
|
6KB
|
203 lines
//=--------------------------------------------------------------------------=
// WebBitmapPPG.Cpp
//=--------------------------------------------------------------------------=
// Copyright 1995 Microsoft Corporation. All Rights Reserved.
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//=--------------------------------------------------------------------------=
//
// property page implementations for WebBitmap control.
//
#include "IPServer.H"
#include "LocalObj.H"
#include "WebBitmapPPG.H"
#include "WebBitmapCtl.H"
#include "Resource.H"
#include "Util.H"
// for ASSERT and FAIL
//
SZTHISFILE
//=--------------------------------------------------------------------------=
// Property Page messages
//=--------------------------------------------------------------------------=
// in addition to regular windows messages you'll receive for a dialog box,
// you'll receive the following messages in your property page implementation:
//
// PPM_NEWOBJECTS:
// wParam = 0;
// lParam = (LPARAM)(HRESULT *)hr
//
// - in this message, you should call FirstControl() to get a pointer to a
// control, and initialize the values in the property page dialog with
// values from the control object. put results from the operation in
// the HRESULT pointed to by LPARAM.
//
// PPM_APPLY:
// wParam = 0;
// lParam = (LPARAM)(HRESULT *)hr
//
// - this message is sent to your dialog whenever the user clicks APPLY or OK
// in the dialog. you should have a loop with the following code in it:
//
// for (pUnk = FirstControl(&dwCookie) ; pUnk; pUnk = NextControl(&dwCookie)) {
// hr = pUnk->QueryInterface(IID_IMyCtlInterface, (void **)&pMyCtl);
// // set properties here!!!
// }
//
// call PropPageException() if there is an error while setting propertites
// to show the exception set up by the property set routine.
//
// PPM_EDITPROPERTY:
// wParam = dispid
// lParam = (LPARAM)(HRESULT *)hr
//
// - sent to your dialog when somebody wants you to set the focus to a specific
// property [typically, one will see a call to this when one returns a page
// from IPerPropertyBrowsing::MapPropertyToPage]. you can use this
// to bring up dialogs, or do whatever flaps your flagella.
//
//=--------------------------------------------------------------------------=
// CWebBitmapGeneralPage::Create
//=--------------------------------------------------------------------------=
// global static creation function.
//
// Parameters:
// IUnknown * - [in] controlling unknown
//
// Output:
// IUnknown * - new prop page.
//
// Notes:
//
IUnknown *CWebBitmapGeneralPage::Create
(
IUnknown *pUnkOuter
)
{
return (IUnknown *)new CWebBitmapGeneralPage(pUnkOuter);
}
//=--------------------------------------------------------------------------=
// CWebBitmapGeneralPage::CWebBitmapGeneralPage
//=--------------------------------------------------------------------------=
// constructor.
//
// Parameters:
// IUnknown * - [in] controlling unknown.
//
// Notes:
//
CWebBitmapGeneralPage::CWebBitmapGeneralPage
(
IUnknown *pUnkOuter
)
: CPropertyPage(pUnkOuter, OBJECT_TYPE_PPGWEBBITMAPGENERAL)
{
// initialize local variables here.
}
//=--------------------------------------------------------------------------=
// CWebBitmapGeneralPage::~CWebBitmapGeneralPage
//=--------------------------------------------------------------------------=
// destructor.
//
// Notes:
//
CWebBitmapGeneralPage::~CWebBitmapGeneralPage()
{
// clean up
}
//=--------------------------------------------------------------------------=
// CWebBitmapGeneralPage::DialogProc
//=--------------------------------------------------------------------------=
// our dialog proc.
//
// Parameters:
// - see win32sdk docs on DialogProc
//
// Notes:
//
BOOL CWebBitmapGeneralPage::DialogProc
(
HWND hwnd,
UINT msg,
WPARAM wParam,
LPARAM lParam
)
{
HRESULT hr;
IWebBitmap *pWebBitmap;
IUnknown *pUnk;
DWORD dwDummy;
VARIANT var;
switch (msg) {
// we've been given some new objects, so go and re-set up the dialog page.
//
case PPM_NEWOBJECTS:
{
pUnk = FirstControl(&dwDummy);
if (!pUnk) return FALSE;
hr = pUnk->QueryInterface(IID_IWebBitmap, (void **)&pWebBitmap);
if (FAILED(hr)) return FALSE;
VariantInit(&var);
pWebBitmap->get_Bitmap(&var);
if( var.vt == VT_BSTR )
{
MAKE_ANSIPTR_FROMWIDE(psz, var.bstrVal);
SetDlgItemText(hwnd, IDC_URL, psz);
SysFreeString(var.bstrVal);
}
pWebBitmap->Release();
}
return TRUE;
case PPM_APPLY:
{
char szTmp[120];
// get all the controls we have to update.
//
for (pUnk = FirstControl(&dwDummy) ; pUnk; pUnk = NextControl(&dwDummy))
{
hr = pUnk->QueryInterface(IID_IWebBitmap, (void **)&pWebBitmap);
if (FAILED(hr)) continue;
GetDlgItemText(hwnd, IDC_URL, szTmp, 128);
VariantInit(&var);
var.vt = VT_BSTR;
var.bstrVal = BSTRFROMANSI(szTmp);
ASSERT(var.bstrVal, "Maggots!");
pWebBitmap->put_Bitmap(var);
SysFreeString(var.bstrVal);
pWebBitmap->Release();
}
}
return TRUE;
case WM_COMMAND:
switch (LOWORD(wParam)) {
case IDC_URL:
if (HIWORD(wParam) == EN_CHANGE)
MakeDirty();
}
break;
}
return(FALSE);
}